In active mode of File Transfer Protocol (FTP), a client connects from a random unprivileged control connection port N (N>1023) to a command port of an FTP server, which is normally 21, and the server initiates data connection to a port provided by the client. On the other hand, in passive mode of FTP, the client initiates both control connection and data connection. In passive FTP, after the client initiates control connection from a port, the server opens a random unprivileged port P (P>1023) and sends P back to the client. The client then initiates connection from its data connection port to port P on the server to transfer data.
Such FTP data connections can be provided via multi-core devices in a cluster system. On a multi-core system, each core can work independently of each other and these cores can communicate with each other through core-to-core (C2C) messages. A group of computing devices, e.g., multi-core devices, behaving as a single system is collectively called a cluster system. Nodes in a cluster system can communicate with each other through node-to-node (N2N) messages.
For providing FTP data connections via multi-core devices as nodes in a cluster system, each node can serve as client to the server and as server to the client. In such a cluster system, however, FTP data connections need special handlings, for example, such that each data connection can be processed by any core of any node which may not have information about the control connection. Moreover, at times, some FTP server implementations use ports other than a standard port, e.g., port “20”, for data connection. When a source port from which the server initiates data connection is not known, the server side data connection can land on any core in the multi-core device other than the core that has handled the control connection. A multi-core device in a cluster system may need to be able to accept such data connections and work accordingly. Therefore, different configurations are needed.